#!/bin/bash

###########################################
#安装 kibana-7.4.2
###########################################

#安装依赖
yum install -y make gcc gcc-c++ python3 libuuid-devel libssh2-devel libstdc++-static

#手动编译 curl 
##################################################################################
#1、下载源码
cd /home
wget https://curl.se/download/curl-7.71.1.tar.gz
tar -zxf curl-7.71.1.tar.gz
cd curl-7.71.1
#2、配置编译选项
./configure --prefix=/usr/local --enable-static --disable-shared
#3、编译安装
make && make install
#4、验证静态库是否生成
ls /usr/local/lib/libcurl.a

#手动编译 OpenSSL 
##################################################################################
#1、下载源码
cd /home
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz  
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
#2、配置编译选项
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl no-shared -fPIC
#3、编译安装
make && make install
#4、验证静态库是否生成
ls /usr/local/ssl/lib/libssl.a
ls /usr/local/ssl/lib/libcrypto.a

#安装 NVM
cd /home
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
#手动加载 NVM
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
#验证安装
nvm --version


##################################################################################
#1、下载源码
cd /home
git clone https://github.com/elastic/kibana.git
cd kibana
git checkout v7.4.2
#2、安装指定版本的 Node.js
nvm use
nvm install 10.15.2
nvm use
node -v
#3、安装 Yarn
npm install -g yarn
#4、修改/home/kibana/src/setup_node_env/root/index.js 文件，注释 root 检查代码
vim src/setup_node_env/root/index.js
#// 注释掉 root 检查
#// if (process.getuid() === 0 && !allowRoot) {
#//   console.error('Kibana should not be run as root.  Use --allow-root to continue.');
#//   process.exit(1);
#// }
#5、引导 Kibana 并安装所有依赖项
yarn kbn bootstrap
#yarn add @elastic/node-ctags


#验证
###################################################################################
#查看版本信息
#通过内置 Node.js 调用 Kibana
node /home/kibana/scripts/kibana.js --version

#运行 Kibana
#1、切换到本地 Kibana 目录
cd /home/kibana
#2、@elastic/node-ctags 模块没有预编译的 ARM 版本，临时跳过该模块加载
vim /home/kibana/node_modules/@elastic/ctags-langserver/lib/lsp-server.js
#//const ctags = __importStar(require("@elastic/node-ctags/ctags"));
#const ctags = { default: {} };
#3、启动开发服务器
yarn start




